iT邦幫忙

2025 iThome 鐵人賽

DAY 1
1

https://ithelp.ithome.com.tw/upload/images/20250901/20166287sKpOKdF4zQ.png

哈囉,大家好 🖖🏻 我是剛踏入軟體產業剛滿一年的雲端開發工程師,同事邀約我一起參加鐵人賽,聽說奮力完成三十天挑戰,自身戰鬥力值可以提升不少,衝著這個我就來參一腳了😆

先説説為什麼我會選擇 Terraform 這個主題,也順便幫未來的自己做個紀錄。

公司主要是代理 Google 的產品,而我在的部門正是 Google Cloud,可想而知幾乎是每天都泡在雲中,前不久在練習部署到 GCP 上時主管提到了全自動部署這件事,我才知道原來這世界上有 Terraform 這個好東西🤩✨因此決定好好把這項技能學起來,而參加鐵人賽不但是鞭策自己每天學習一點,也幫助自己消化所學到的內容!

如果很幸運的有大神路過也很剛好的看了我分享的內容,歡迎大家多多指教與交流 👀🙏🏻

🐈🐈🐈

接下來就進入正題 —— Terraform

依照我詢問 Gemini 什麼是 Terraform?得到以下的回覆:

Terraform 是一個開源的基礎設施即程式碼 (Infrastructure as Code, IaC) 工具,由 HashiCorp 公司開發。它允許你使用一種高階、宣告式的組態語言,來定義和管理雲端資源,例如虛擬機器、網路、儲存空間、資料庫等等。

先聊聊 Gemini 提到的基礎設施即程式碼(Infrastructure as Code, IaC)

大家想想,今天公司新產品的開發、測試和正式環境,需要團隊配置與維護時,加上手動配置時,會有哪些挑戰跟問題發生?依照我想到的做個整理:

  1. 耗時耗力: 每次要建環境都要重複做同樣的事(新增、刪除、配置),手動處理會很麻煩又很慢。
  2. 人為錯誤: 手動點擊、填寫資訊和勾選選項時容易出錯,導致配置不正確或遺漏關鍵步驟,可能引發後續的運作問題。
  3. 環境不一致: 開發中常會出現「在我的電腦可以跑啊!」,正是因為每個人或每個環境設定的細節不同,像是版本不一樣、補丁沒更新等等,就會造成落差。
  4. 設定飄移 (Configuration Drift): 由於長期手動調整,環境配置會逐漸偏離初始設計,難以追蹤所有變更,使架構變得混亂且難以維護。
  5. 缺乏自動化與變更追蹤: 手動變更難以記錄或回溯,團隊合作時,缺乏透明度與可追蹤性,風險較高。
  6. 安全性控管不足: 權限和資源隔離要靠人手動設,不但不一致還容易有漏洞。
  7. 高昂的人力成本: 為了應對這些挑戰,有些公司會額外配置專門的基礎設施小組來負責運維,增加了人力成本。
  8. 運維成本浪費: 有時候資源明明沒在用,但因為沒自動回收,結果還是在燒錢QQ
  9. 擴展困難: 當業務快速成長需要擴展服務時,手動部署的速度會遠遠跟不上需求,影響業務彈性。

但仔細分析這些挑戰的核心問題,會發生其實就是因為過多的人為操作,導致無法統一、缺乏可控性且易出錯,那如果今天有個小幫手,而你只需要給他一份清單他會自動幫你完成清單上所有的事情,那是不是更能提高效率並且減少出錯?

登愣!這正是 「基礎設施即程式碼」 (IaC) 的核心價值所在。IaC 透過將基礎設施定義為程式碼,實現自動化,確保每個環境的一致性,同時提供變更追蹤與版本控制。它能大幅減少錯誤、節省時間與人力成本,並提升雲端資源管理的品質與效率。

Terraform 是用於實踐 IaC 的最佳工具,它不是一個單純的自動化腳本,而是一套完整的基礎設施生命週期管理工具,它的運作方式是宣告式的,只要描述想要的最終狀態就好,不需要手動寫下達成這個狀態的所有步驟!

🐈🐈🐈

下一篇要探討 Terraform 是如何運作的?


下一篇
Day 02 - Terraform 如何運作!
系列文
30 天 Terraform 學習筆記:從零開始的 IaC 實戰2
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言